package Thread;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 邓大帅
 * Date: 2024-01-24
 * Time: 10:25
 */
public class ThreadDemo4 {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(() -> {
            System.out.println("hello world");
        });
//        在启动线程之前，获取状态，就是NEW状态:线程还未创建，只是有一个Thread对象
        System.out.println(thread.getState());
        thread.start();
        Thread.sleep(2000);
//        TERMINATED状态：线程执行结束，Thread对象还在
//        RUNNABLE状态：就绪状态，在java中的就绪状态其实包括了操作系统的就绪态和运行态，将它们统称为了RUNNABLE状态
//        TIME_WAITING状态：指定时间的阻塞等待状态 例如sleep方法
//        BLOCKED状态：等待锁的状态 其实就是等待系统资源，操作系统里可以用信号量表示 在java中方就是用synchronized出现的阻塞状态
//        WAITING状态：使用wait方法出现的阻塞状态
//        其实java就是把操作系统中的阻塞态更细分了，分成了TIME_WAITING、BLOCKED、WAITING这三个状态
        System.out.println(thread.getState());
    }
}
